home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-09-18 | 41.4 KB | 2,506 lines |
- *****************************************
- * Monkeys & Balloons *
- * by Frank Cohen *
- * (c) 1988 Regent Software *
- * ------------------------------------- *
- * Started December 9, 1986 *
- * Last Modified December 11, 1986 *
- * ------------------------------------- *
- * Started Again May 16, 1988 *
- * Revision List *
- * 042388 My 27th Birthday
- * 060288 Beta testing release
- * 071688 Final release
- * 112488 Happy Turkey Day!
- * 112588 Fix Mega ST bombing problem
- *****************************************
-
- CXORG EQU 20 ;Horizontal starting position
- CYORG EQU 154 ;Vert
- CKORG EQU 5 ;Gravity start
- CIORG EQU $100 ;Y inc value
- CIXORG EQU 50 ;X inc value
- TEMPO EQU 2 ;Music Tempo
- BAL_PER_ROW EQU 6 ;Balloons per row
-
- START DC $A000
- MOVE.L D0,HOLDA0
- DC $A00A
-
- MOVE #2,-(A7) ;GET PHYSICAL ADDRESS OF VIDEO RAM
- TRAP #14
- ADD #2,A7
- MOVE.L D0,SCREEN
-
- MOVE #4,-(A7) ;GETREZ
- TRAP #14
- ADD #2,A7
- MOVE D0,OLD_REZ
-
- CLR -(A7) ;FORCE LOW REZ
- MOVE.L #-1,-(A7)
- MOVE.L #-1,-(A7)
- MOVE #5,-(A7)
- TRAP #14
- ADD #10,A7
-
- LEA OLD_COLORS,A4
- CLR COUNTER
- SAVECLRS CLR -(A7) ;SETCOLOR
- MOVE COUNTER,-(A7)
- MOVE #7,-(A7)
- TRAP #14
- ADD #6,A7
- MOVE D0,(A4)+
- ADD #1,COUNTER
- CMP #16,COUNTER
- BNE SAVECLRS
-
- MOVE.L #SETUPVB,-(A7) ;RUN INIT V_BLANK
- MOVE #38,-(A7)
- TRAP #14
- ADD #6,A7
-
- *---------------LOAD DATA FROM FILES---------------*
-
- LEA FNAME5,A0
- LEA TITLE,A1
- JSR LOADFILE
-
- LEA FNAME4,A0
- LEA MESSAGES,A1
- JSR LOADFILE
-
- LEA FNAME3,A0
- LEA MEN,A1
- JSR LOADFILE
-
- LEA FNAME2,A0
- MOVE.L SCREEN,A1
- JSR LOADFILE
-
- LEA FNAME1,A0
- LEA BALLOONS,A1
- JSR LOADFILE
-
- MOVE #7999,D0
- MOVE.L SCREEN,A0
- LEA FLIP1,A1
- COPYFLIP2 MOVE.L (A0)+,(A1)+
- DBF D0,COPYFLIP2
-
- MOVE.L #COLORS,-(A7) ;SET COLOR PALETTE
- MOVE #6,-(A7)
- TRAP #14
- ADD.L #6,A7
-
- ADD #4,A7 ;First time stack modify
-
- * The TAO Programmer says:
- * When managers hold endless meetings, the programmers write games.
- * When accountants talk of quarterly profits, the development budget
- * is about to be cut. When senior scientists talk blue sky,
- * the clouds are about to roll in.
- * Truly, this is not the Tao of Programming.
-
- *---------------TITLE SCREEN---------------*
-
- DOTITLE SUB #4,A7 ;Even out the stack
-
- MOVE #1,ATTRACT_MODE
- JSR RMUSIC
- CLR D0
- JSR START_MUSIC
-
- LEA TITLE,A0
- MOVE.L SCREEN,A1
- MOVE.L #7999,D0
- DOTIT1 MOVE.L (A0)+,(A1)+
- DBF D0,DOTIT1
-
- MOVE #10,COUNT2
-
- TITLE_99 MOVE #60,COUNT
-
- TITLE_100 MOVE VCOUNT,D0
- TITLE_SYNC CMP VCOUNT,D0
- BEQ TITLE_SYNC
-
- JSR MUSIC
-
- MOVE.L HOLDA0,A0
- MOVE -596(A0),D0
- AND #3,D0
- BNE START_GAME
-
- SUB #1,COUNT
- TST COUNT
- BNE TITLE_100
- MOVE #60,COUNT
- SUB #1,COUNT2
- TST COUNT2
- BNE TITLE_99
- CLR.L POINTS
- CLR.L BONUS
- JMP PLAYINIT
-
- START_GAME MOVE.L HOLDA0,A0
- MOVE -596(A0),D0
- AND #3,D0
- BNE START_GAME
-
- JSR RMUSIC
- CLR ATTRACT_MODE
- CLR.L POINTS
- CLR.L BONUS
- MOVE #3,LIVES
-
- *---------------INIT----------------*
-
- PLAYINIT MOVE #20,MEN_TIMER
-
- CLR PCOUNT
- CLR PCOUNT2
-
- CLR CLOWNIMAGE
- MOVE #70,IMAGETIME
-
- MOVE #10,MENXPOS
- MOVE #10,OLDMEN
-
- MOVE #CIORG,YINC
- MOVE #CIORG,SYINC
- MOVE #CIXORG,XINC
- MOVE #CKORG,KS
- MOVE #CKORG,KAY
- CLR HITS
-
- MOVE #CXORG,CLOWNX
- MOVE #CXORG,OLDCLOWNX
- MOVE.B #CXORG,HPOS
-
- MOVE #CYORG,CLOWNY
- MOVE #CYORG,OLDCLOWNY
- MOVE.B #CYORG,VPOS
-
- MOVE #7999,D0
- LEA FLIP1,A0
- MOVE.L SCREEN,A1
- COPYFLIP MOVE.L (A0)+,(A1)+
- DBF D0,COPYFLIP
-
- JSR START_BALLOONS
-
- CLR D0
- JSR SCORED
-
- * When managers make commitments, game programs are ignored.
- * When accountants make long-range plans, harmony and order are
- * about to be restored. When senior scientists address the
- * problems at hand, then the problems will soon be solved.
- * Truly, this is the Tao of Programming.
-
- *--------------MAIN LOOP---------------
-
- MAINLOOP TST ATTRACT_MODE
- BEQ MAINNB
- MOVE.L HOLDA0,A0
- MOVE -596(A0),D0
- AND #3,D0
- BNE START_GAME
-
- MAINNB MOVE #11,-(A7)
- TRAP #1
- ADD #2,A7
- TST D0
- BEQ NOKEY
-
- JSR WAIT_KEY
- MOVE.L D0,D1
- SWAP D1
- CMP.B #97,D1
- BEQ EXIT
- CMP.B #' ',D0
- BEQ EXIT
- CMP.B #27,D0
- BNE NOKEY
-
- PAUSED TST ATTRACT_MODE
- BNE NOKEY
- JSR WAIT_KEY
- CMP.B #27,D0
- BNE PAUSED
-
- NOKEY MOVE VCOUNT,D0
- MAIN2 ADD #1,RNDVAL
- CMP VCOUNT,D0
- BEQ MAIN2
-
- JSR UN_PLOT_CLOWN
- JSR PLOT_BALLOONS
-
- CMP #100,CLOWNY
- BGT SYNC_LOWER
-
- JSR PLOT_CLOWN
- JSR PLOT_MEN
- JSR MOVE_CLOWN
- JSR MOVE_MEN
- JSR POP_BALLOONS
- JSR MUSIC
- JSR SOUNDS
- JMP MAINLOOP
-
- SYNC_LOWER JSR PLOT_MEN
- JSR PLOT_CLOWN
- JSR MOVE_CLOWN
- JSR MOVE_MEN
- JSR POP_BALLOONS
- JSR MUSIC
- JSR SOUNDS
- JMP MAINLOOP
-
- *-------MOVE MONKEYS--------
-
- MOVE_MEN TST ATTRACT_MODE
- BEQ MM_NORMAL
-
- MOVE VCOUNT,D0
- AND #3,D0
- MOVE D0,MEN_TIMER
-
- MOVE CLOWNX,D0
- LSR #1,D0
- SUB #5,D0
- CMP MENXPOS,D0
- BEQ MM_RTN
- BCS MM_LT
-
- MOVE MENXPOS,D0
- CMP #58,D0
- BGE MM_RTN
- ADD #1,MENXPOS
- RTS
-
- MM_LT MOVE MENXPOS,D0
- CMP #8,D0
- BLE MM_RTN
- SUB #1,MENXPOS
- RTS
-
- MM_NORMAL MOVE.L HOLDA0,A0
- MOVE -602(A0),D0
- LSR #2,D0
- CMP #7,D0
- BLE MM_RTN2
- CMP #60,D0
- BGE MM_RTN4
-
- MM_RTN3 MOVE D0,MENXPOS
- MM_RTN RTS
-
- MM_RTN2 MOVE #8,D0
- JMP MM_RTN3
- MM_RTN4 MOVE #59,D0
- JMP MM_RTN3
-
- *--------INIT V_BLANK ROUTINES-----------
-
- SETUPVB MOVE.L $456,A0
- RUNRUN TST.L (A0)
- BEQ SET2
- ADD #4,A0
- JMP RUNRUN
-
- SET2 MOVE.L #V_BLANK,(A0)
- MOVE.L A0,HOLDEN
- RTS
-
- *--------DE INIT--------
-
- DEINIT MOVE.L #UNBY,-(A7) ;RUN INIT V_BLANK
- MOVE #38,-(A7)
- TRAP #14
- ADD #6,A7
- RTS
-
- UNBY MOVE.L HOLDEN,A0 ;CLEAR VBLANK PATCH
- CLR.L (A0)
- RTS
-
- *--------VERTICAL BLANK ROUTINE----------
-
- V_BLANK ADD #1,VCOUNT
- RTS
-
- * There was once a master programmer who wrote unstructured
- * programs. A novice programmer, seeking to imitate him, also
- * began to write unstructured code. When the novice asked the
- * master to evaluate his progress, the master criticized him
- * for writing unstructured programs, saying: "What is appropriate
- * for the master is not appropriate for the novice. You must
- * understand Tao before transcending structure."
-
- *----------BALLOON PLOT-----------
-
- PLOT_BALLOONS ADD #1,PCOUNT2
- CMP #3,PCOUNT2
- BLT PLOT_MAIN
- CLR PCOUNT2
-
- PLOT_MAIN CLR PCOUNT
- TST PCOUNT2
- BEQ PLOT_LOOP
-
- MOVE #BAL_PER_ROW,PCOUNT
- CMP #1,PCOUNT2
- BEQ PLOT_LOOP
-
- MOVE #BAL_PER_ROW*2,PCOUNT
-
- PLOT_LOOP CLR.L D7
- MOVE PCOUNT,D7
- LSL #1,D7
-
- LEA SWITCH,A0
- ADD D7,A0
- TST (A0)
- BEQ PLOT_RCRS
-
- LEA DELAY,A0
- ADD D7,A0
- TST (A0)
- BEQ PLOT_NODELAY
- SUB #1,(A0)
- JMP PLOT_RCRS
-
- PLOT_NODELAY LEA XPOS,A0
- ADD D7,A0
-
- CMP #2,PCOUNT2
- BNE PLOT_RIGHT
-
- SUB #1,(A0)
- TST (A0)
- BNE PLOT_NST
- MOVE #145,(A0)
- JMP PLOT_NST
-
- PLOT_RIGHT ADD #1,(A0)
- CMP #145,(A0)
- BLT PLOT_NST
- CLR (A0)
-
- PLOT_NST CLR.L D6
- CLR.L D5
- MOVE (A0),D5
- MOVE D5,D6
- AND #$0007,D6 ;IMAGE #
- AND #$FFF8,D5
-
- CLR.L D1
- MOVE D6,D1
- MOVE.L #160*14,D0
- CMP #4,D6
- BLT PAPPAS
- SUB #4,D1
- MOVE #160*48,D0
- PAPPAS ADD.L #BALLOONS,D0
-
- LSL #5,D1
- ADD.L D1,D0
- MOVE.L D0,A0
-
- MOVE.L SCREEN,D1
- ADD.L #44*160,D1
- TST PCOUNT2
- BEQ DOUG3
- ADD.L #60*160,D1
- CMP #1,PCOUNT2
- BEQ DOUG3
- SUB.L #30*160,D1
-
- DOUG3 ADD.L D5,D1
- MOVE.L D1,A1
-
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
-
- *-------RECURSE-------
-
- PLOT_RCRS ADD #1,PCOUNT
-
- TST PCOUNT2
- BEQ PLOT_T2
- CMP #1,PCOUNT2
- BEQ PLOT_T1
-
- CMP #BAL_PER_ROW*3,PCOUNT
- BNE PLOT_LOOP
-
- LEA FLIP1+11840,A0
- MOVE.L SCREEN,A1
- ADD #11840,A1
- JSR DODOUG
-
- LEA FLIP1+11984,A0
- MOVE.L SCREEN,A1
- ADD #11984,A1
- JMP DODOUG
-
- PLOT_T1 CMP #BAL_PER_ROW*2,PCOUNT
- BNE PLOT_LOOP
-
- LEA FLIP1+16640,A0
- MOVE.L SCREEN,A1
- ADD #16640,A1
- JSR DODOUG
-
- LEA FLIP1+16784,A0
- MOVE.L SCREEN,A1
- ADD #16784,A1
- JMP DODOUG
-
- PLOT_T2 CMP #BAL_PER_ROW,PCOUNT
- BNE PLOT_LOOP
-
- LEA FLIP1+7040,A0
- MOVE.L SCREEN,A1
- ADD #7040,A1
- JSR DODOUG
-
- LEA FLIP1+7184,A0
- MOVE.L SCREEN,A1
- ADD #7184,A1
-
- DODOUG MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- RTS
-
- *-----------PLOT RUNNING MEN---------
-
- PLOT_MEN CLR.L D0
- MOVE OLDMEN,D0
- AND #$FFFC,D0
- LSL #1,D0
- MOVE.L SCREEN,A1
- ADD #160*173,A1
- ADD D0,A1
-
- MOVE #3,D1
- CLRMEN CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- ADD #160-32,A1
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- ADD #160-32,A1
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- ADD #160-32,A1
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- ADD #160-32,A1
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- ADD #160-32,A1
- DBF D1,CLRMEN
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
-
- * A novice asked the master: "Here is a programmer who never
- * designs, documents, or tests his programs. Yet all who know
- * him consider him one of the best programmers in the world.
- * Why is this?"
- * The master replied: "That programmer has mastered the Tao.
- * He has gone beyond the need for design; he does not become
- * angry when the system crashes, but accepts the universe without
- * concern. He has gone beyond the need for documentation; he no longer
- * cares if anyone sees his code. He has gone beyond the need for
- * testing; each of his programs are perfect within themselves,
- * serene and elegant, their purpose self-evident.
- * "Truly, he has entered te mystery of the Tao."
-
- CLR.L D1
- MOVE MENXPOS,D1
- MOVE D1,OLDMEN
- AND #$0003,D1
- LSL #5,D1
- LEA MEN,A0
- ADD #160*11,A0
- ADD D1,A0
-
- CLR.L D0
- MOVE MENXPOS,D0
- AND #$FFFC,D0
- LSL #1,D0
- MOVE.L SCREEN,A1
- ADD #160*173,A1
- ADD D0,A1
-
- MOVE #3,D1
- MENPOS MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-32,A0
- ADD #160-32,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-32,A0
- ADD #160-32,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-32,A0
- ADD #160-32,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-32,A0
- ADD #160-32,A1
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-32,A0
- ADD #160-32,A1
- DBF D1,MENPOS
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- RTS
-
- *-----------PLOT CLOWN---------
-
- UN_PLOT_CLOWN CLR.L D1
- MOVE OLDCLOWNX,D1
- AND #$0007,D1
- LSL #4,D1
- LEA MEN,A0
- ADD #160*43,A0
- ADD.L D1,A0
- CLR.L D1
- MOVE OLDIMAGE,D1
- MULU #41*160,D1
- ADD.L D1,A0
-
- CLR.L D1
- MOVE OLDCLOWNY,D1
- MULU #160,D1
- CLR.L D0
- MOVE OLDCLOWNX,D0
- AND #$FFF8,D0
- ADD.L SCREEN,D0
- ADD.L D1,D0
- MOVE.L D0,A1
-
- MOVE #29,D3
- CLRCLOWN MOVE.L (A0)+,D0
- EOR.L #$FFFFFFFF,D0
- MOVE.L (A1),D1
- AND.L D1,D0
- MOVE.L D0,(A1)+
-
- MOVE.L (A0)+,D0
- EOR.L #$FFFFFFFF,D0
- MOVE.L (A1),D1
- AND.L D1,D0
- MOVE.L D0,(A1)+
-
- MOVE.L (A0)+,D0
- EOR.L #$FFFFFFFF,D0
- MOVE.L (A1),D1
- AND.L D1,D0
- MOVE.L D0,(A1)+
-
- MOVE.L (A0)+,D0
- EOR.L #$FFFFFFFF,D0
- MOVE.L (A1),D1
- AND.L D1,D0
- MOVE.L D0,(A1)+
-
- ADD #160-16,A0
- ADD #160-16,A1
- DBF D3,CLRCLOWN
- RTS
-
- PLOT_CLOWN SUB #1,IMAGETIME
- TST IMAGETIME
- BPL NOIMAGE
- MOVE RNDVAL,D0
- AND #$3F,D0
- MOVE D0,IMAGETIME
- AND #3,D0
- MOVE D0,CLOWNIMAGE
-
- NOIMAGE MOVE CLOWNX,OLDCLOWNX
- MOVE CLOWNY,OLDCLOWNY
- MOVE CLOWNIMAGE,OLDIMAGE
-
- CLR.L D1
- MOVE CLOWNX,D1
- AND #$0007,D1
- LSL #4,D1
- LEA MEN,A0
- ADD #160*43,A0
- ADD D1,A0
- CLR.L D1
- MOVE CLOWNIMAGE,D1
- MULU #41*160,D1
- ADD.L D1,A0
-
- CLR.L D1
- MOVE CLOWNY,D1
- MULU #160,D1
- CLR.L D0
- MOVE CLOWNX,D0
- AND #$FFF8,D0
- ADD.L SCREEN,D0
- ADD.L D1,D0
- MOVE.L D0,A1
-
- MOVE #29,D3
- CLOWNPOS MOVE.L (A0)+,D0
- MOVE.L D0,D2
- EOR.L #$FFFFFFFF,D0
- MOVE.L (A1),D1
- AND.L D1,D0
- OR.L D2,D0
- MOVE.L D0,(A1)+
-
- MOVE.L (A0)+,D0
- MOVE.L D0,D2
- EOR.L #$FFFFFFFF,D0
- MOVE.L (A1),D1
- AND.L D1,D0
- OR.L D2,D0
- MOVE.L D0,(A1)+
-
- MOVE.L (A0)+,D0
- MOVE.L D0,D2
- EOR.L #$FFFFFFFF,D0
- MOVE.L (A1),D1
- AND.L D1,D0
- OR.L D2,D0
- MOVE.L D0,(A1)+
-
- MOVE.L (A0)+,D0
- MOVE.L D0,D2
- EOR.L #$FFFFFFFF,D0
- MOVE.L (A1),D1
- AND.L D1,D0
- OR.L D2,D0
- MOVE.L D0,(A1)+
-
- ADD #160-16,A0
- ADD #160-16,A1
- DBF D3,CLOWNPOS
- RTS
-
- *------------CLOWN MOVEMENT------------
-
- MOVE_CLOWN MOVE YINC,D0
- SUB KAY,D0
- MOVE D0,YINC
-
- CLR.L D2
- MOVE D0,D2
- CLR.L D1
- MOVE VPOS,D1
- SUB D2,D1
- MOVE D1,VPOS
-
- CLR D1
- MOVE.B VPOS,D1
- CMP #45,D1
- BGT NO_TOP
- MOVE #1,TOP_FLAG
-
- NO_TOP CLR.L D0
- MOVE HPOS,D0
- ADD XINC,D0
- MOVE D0,HPOS
-
- CMP.B #16,HPOS ;Hit left wall
- BCC NSS
-
- ADD.B #1,HPOS
- CLR D0
- SUB XINC,D0
- MOVE D0,XINC
-
- MOVE #3,IMAGETIME
- JSR HIT_WALL
-
- NSS CMP.B #136,HPOS
- BCS NSSL
-
- SUB.B #1,HPOS ;Hit right wall
- CLR D0
- SUB XINC,D0
- MOVE D0,XINC
-
- MOVE #3,IMAGETIME
- JSR HIT_WALL
-
- NSSL CMP.B #155,VPOS ;Bounce on trampoline
- BCS MVMAN
-
- ADD #1,HITS
-
- TST TOP_FLAG
- BEQ NOTOPED
- CLR TOP_FLAG
- CMP #90,KS
- BGT SKILL2
- ADD #1,KS
- ADD #16,SYINC
- JMP REPLAY
- SKILL2 SUB #35,SYINC
- JMP REPLAY
-
- NOTOPED ADD #30,SYINC
-
- REPLAY MOVE SYINC,YINC
- MOVE KS,KAY
- SUB #1,VPOS
-
- TST ATTRACT_MODE
- BNE NOTRAMPSND
- TST MUSTAT
- BNE NOTRAMPSND
- JSR RMUSIC
- MOVE #10,SOUND_COUNT
-
- MOVE #236,D0
- MOVE #0,D1
- JSR DOSOUND
- MOVE #5,D0
- MOVE #1,D1
- JSR DOSOUND
- MOVE #230,D0
- MOVE #2,D1
- JSR DOSOUND
- MOVE #5,D0
- MOVE #3,D1
- JSR DOSOUND
- MOVE #252,D0 ;Turn on all tone voices
- MOVE #7,D1
- JSR DOSOUND
- MOVE #10,D0 ;Set volumes
- MOVE #8,D1
- JSR DOSOUND
- MOVE #10,D0
- MOVE #9,D1
- JSR DOSOUND
- MOVE #10,D0
- MOVE #10,D1
- JSR DOSOUND
-
- NOTRAMPSND CLR.L D1
- MOVE MENXPOS,D1
- LSL #1,D1
-
- CLR.L D0
- MOVE.B HPOS,D0
-
- CMP D1,D0
- BLT DEAD
-
- SUB D1,D0
- CMP #17,D0
- BGE DEAD
-
- TST ATTRACT_MODE
- BEQ MV_NATT
- MOVE #-175,XINC
- MOVE RNDVAL,D0
- AND #1,D0
- BEQ MVMAN
- MOVE #175,XINC
- JMP MVMAN
-
- MV_NATT CLR.L D1
- MOVE D0,D1
- LSL #1,D1
- ADD.L #XTABLE,D1
- MOVE.L D1,A0
- MOVE (A0),XINC
-
- MVMAN CLR D0
- MOVE.B VPOS,D0
- MOVE D0,CLOWNY
- CLR D0
- MOVE.B HPOS,D0
- MOVE D0,CLOWNX
- RTS
-
- *----------DEATH ROUTINE-----------*
-
- DEAD LEA FLIP1,A0
- ADD #153*160,A0
- MOVE.L SCREEN,A1
- ADD #153*160,A1
- MOVE.L #160*42,D0
- DEAD2 MOVE.B (A0)+,(A1)+
- DBF D0,DEAD2
-
- MOVE.L SCREEN,A1
- ADD #160*166,A1
- CLR.L D0
- MOVE CLOWNX,D0
- AND #$FFF8,D0
- ADD.L D0,A1
-
- LEA MEN,A0
- ADD #160*43,A0
- ADD #128,A0
-
- MOVE #28,D0
- DEAD3 MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- ADD #160-16,A0
- ADD #160-16,A1
- DBF D0,DEAD3
-
- JSR RMUSIC
- MOVE #2,D0
- JSR START_MUSIC
-
- TST LIVES
- BNE DEAD4
- MOVE #4,D0
- JSR DOMESSAGE
-
- DEAD4 MOVE VCOUNT,D0
- DEAD5 ADD #1,RNDVAL
- CMP VCOUNT,D0
- BEQ DEAD5
- JSR MUSIC
- JSR PLOT_BALLOONS
- TST MUSTAT
- BNE DEAD4
-
- TST LIVES
- BEQ GAME_OVER
- SUB #1,LIVES
- JMP PLAYINIT
- GAME_OVER JMP DOTITLE
-
- XTABLE DC -350,-300,-250,-225,-200,-175,-150,-50
- DC 50,150,175,200,225,250,300,350
- DC 350,350,350,350,350,350,350,350
-
- *-----------LOAD A FILE-------------
- * A0 = PTR TO FILE NAME
- * A1 = PTR TO LOCATION
-
- LOADFILE MOVE.L A1,LFADR
-
- CLR -(A7) ;F_OPEN
- MOVE.L A0,-(A7)
- MOVE #$3D,-(A7)
- TRAP #1
- ADD #8,A7
-
- TST D0
- BMI EXIT
- MOVE D0,FHANDLE
-
- MOVE.L #COLORS-2,-(A7) ;F_READ
- MOVE.L #34,-(A7)
- MOVE FHANDLE,-(A7)
- MOVE #$3F,-(A7)
- TRAP #1
- ADD #12,A7
-
- MOVE.L #DECODE,-(A7) ;F_READ
- MOVE.L #32000,-(A7)
- MOVE FHANDLE,-(A7)
- MOVE #$3F,-(A7)
- TRAP #1
- ADD #12,A7
- MOVE.L D0,LFSIZE
-
- MOVE FHANDLE,-(A7) ;F_CLOSE
- MOVE #$3E,-(A7)
- TRAP #1
- ADD #4,A7
-
- MOVE.L LFSIZE,D0
- MOVE.L LFADR,A0
- MOVE.L #DECODE,A1
-
- *****************************************************
- * DEGAS COMPRESSED PICTURE DECODER (LOW RESOLUTION) *
- * D0 - # OF BYTES TO DECOMPRESS *
- * A0 - DESTINATION ADDRESS *
- * A1 - SOURCE ADDRESS *
- *****************************************************
-
- CLR D3
- MOVE #200,D6
- DEGAS_LINE MOVE #4,D5
- SUB #1,D6
- TST D6
- BEQ DEGAS_DONE
-
- DEGAS_COLOR MOVE #40,D4
- DEGAS_LOOP CMP.L #1,D0
- BLT DEGAS_DONE
-
- SUB.L #1,D0
- CLR.L D1
- MOVE.B (A1)+,D1
- CMP.B #128,D1
- BEQ DEGAS_LOOP
-
- TST.B D1
- BMI DEGAS_DUPLICATE
-
- DEGAS_COPYLP MOVE.B (A1)+,(A0)
- SUB.L #1,D0
- SUB #1,D4
-
- TST D3
- BNE DEGAS_COPYLP2
- ADD #1,A0
- MOVE #1,D3
- JMP DEGAS_COPYRCRS
- DEGAS_COPYLP2 ADD #7,A0
- CLR D3
-
- DEGAS_COPYRCRS DBF D1,DEGAS_COPYLP
- TST D4
- BNE DEGAS_LOOP
- SUB #158,A0
- SUB #1,D5
- TST D5
- BNE DEGAS_COLOR
- ADD #152,A0
- JMP DEGAS_LINE
-
- * "After three days without programming, life becomes meaningless."
-
- DEGAS_DUPLICATE MULS #-1,D1
- AND #$FF,D1
- MOVE.B (A1)+,D2
- SUB.L #1,D0
-
- DEGAS_DUPLP MOVE.B D2,(A0)
-
- SUB #1,D4
-
- TST D3
- BNE DEGAS_DUPLP2
- ADD #1,A0
- MOVE #1,D3
- JMP DEGAS_DUPRCRS
- DEGAS_DUPLP2 ADD #7,A0
- CLR D3
-
- DEGAS_DUPRCRS DBF D1,DEGAS_DUPLP
-
- TST D4
- BNE DEGAS_LOOP
- SUB #158,A0
- SUB #1,D5
- TST D5
- BNE DEGAS_COLOR
- ADD #152,A0
- JMP DEGAS_LINE
-
- DEGAS_DONE RTS
-
- *-------------EXIT-------------
-
- EXIT JSR DEINIT
-
- MOVE OLD_REZ,-(A7) ;FORCE LOW REZ
- MOVE.L #-1,-(A7)
- MOVE.L #-1,-(A7)
- MOVE #5,-(A7)
- TRAP #14
- ADD #10,A7
-
- MOVE.L #OLD_COLORS,-(A7) ;SET COLOR PALETTE
- MOVE #6,-(A7)
- TRAP #14
- ADD.L #6,A7
-
- DC $A009
-
- CLR -(A7)
- TRAP #1
-
- FNAME1 DC.B 'CLOWNS.PC1',0
- FNAME2 DC.B 'BACKGRND.PC1',0
- FNAME3 DC.B 'MEN.PC1',0
- FNAME4 DC.B 'MESSAGES.PC1',0
- FNAME5 DC.B 'TITLE.PC1',0
- EVEN
-
- WAIT_KEY MOVE #7,-(A7)
- TRAP #1
- ADD.L #2,A7
- RTS
-
- *---------------BALLOON COLLISSION DETECT--------------*
-
- POP_BALLOONS LEA SWITCH,A2
- LEA XPOS,A3
- MOVE.L #BAL_PER_ROW-1,D5
-
- CLR.L D6
- CMP #44,CLOWNY
- BLT POP_L2
- CMP #70,CLOWNY
- BLE POP_TEST
-
- POP_L2 ADD #BAL_PER_ROW*2,A2
- ADD #BAL_PER_ROW*2,A3
- MOVE #1,D6
-
- CMP #104,CLOWNY
- BLT POP_L3
- CMP #130,CLOWNY
- BLE POP_TEST
-
- POP_L3 ADD #BAL_PER_ROW*2,A2
- ADD #BAL_PER_ROW*2,A3
- MOVE #2,D6
-
- CMP #74,CLOWNY
- BLT POP_DONE
- CMP #100,CLOWNY
- BGT POP_DONE
-
- POP_TEST TST (A2)
- BEQ POP_RCRS
-
- CMP #16,(A3)
- BLT POP_RCRS
- CMP #135,(A3)
- BGT POP_RCRS
-
- MOVE CLOWNX,D0
- CMP (A3),D0
- BLT POP_RCRS
- SUB #10,D0
- CMP (A3),D0
- BGT POP_RCRS
-
- CLR.L D0 ;Clear one popped balloon
- MOVE (A3),D0
- AND #$FFF8,D0
- MOVE.L SCREEN,D1
- ADD.L #44*160,D1
- TST D6
- BEQ POP_CLRIT
- ADD.L #60*160,D1
- CMP #1,D6
- BEQ POP_CLRIT
- SUB.L #30*160,D1
- POP_CLRIT ADD.L D1,D0
- MOVE.L D0,A1
- JSR POP_IT
- JSR POP_SOUND
-
- CLR (A2)
- CLR (A3)
-
- TST D6
- BNE POP_2NDLVL
-
- MOVE #25,D0
- JSR SCORED
-
- SUB #1,POP_COUNT1
- TST POP_COUNT1
- BNE POP_RCRS
- TST POP_COUNT2
- BEQ POP_ENDL1
-
- LEA FLIP1,A0 ;Refill the first row of balloons
- ADD #7040,A0
- MOVE.L SCREEN,A1
- ADD #7040,A1
- MOVE #1039,D0
- POP_FILL1 MOVE.L (A0)+,(A1)+
- DBF D0,POP_FILL1
-
- MOVE #BAL_PER_ROW,POP_COUNT1
- LEA XPOS,A0
- LEA DELAY,A1
- LEA SWITCH,A2
- MOVE #BAL_PER_ROW-1,D0
- MOVE #18,D1
- POP_INT1 CLR (A0)+
- MOVE D1,(A1)+
- MOVE #1,(A2)+
- ADD #22,D1
- DBF D0,POP_INT1
- JMP POP_RCRS
-
- POP_ENDL1 TST ATTRACT_MODE
- BNE DOTITLE
- MOVE #2,D0 ;Bonus of 1000 Points!
- JSR DOMESSAGE
- MOVE #1000,D0
- JSR SCORED
- JSR RMUSIC
- MOVE.L #1,D0
- JSR START_MUSIC
- JSR START_BALLOONS
- JSR UN_PLOT_CLOWN
-
- MAIN4 MOVE VCOUNT,D0
- MAIN3 ADD #1,RNDVAL
- CMP VCOUNT,D0
- BEQ MAIN3
- JSR UN_PLOT_CLOWN
- JSR PLOT_MEN
- JSR PLOT_CLOWN
- JSR MOVE_MEN
- JSR MUSIC
- TST MUSTAT
- BNE MAIN4
- MOVE #5,D0
- JSR DOMESSAGE
- JMP POP_DONE
-
- POP_2NDLVL CMP #1,D6
- BEQ POP_3RDLVL
-
- MOVE #15,D0
- JSR SCORED
-
- SUB #1,POP_COUNT2
- TST POP_COUNT2
- BNE POP_RCRS
- TST POP_COUNT3
- BEQ POP_ENDL2
-
- LEA FLIP1,A0 ;Refill the second row of balloons
- ADD #11840,A0
- MOVE.L SCREEN,A1
- ADD #11840,A1
- MOVE #1039,D0
- POP_FL3 MOVE.L (A0)+,(A1)+
- DBF D0,POP_FL3
-
- MOVE #BAL_PER_ROW,POP_COUNT2
- LEA XPOS,A0
- ADD #BAL_PER_ROW*4,A0
- LEA DELAY,A1
- ADD #BAL_PER_ROW*4,A1
- LEA SWITCH,A2
- ADD #BAL_PER_ROW*4,A2
- MOVE #BAL_PER_ROW-1,D0
- MOVE #45,D1
- POP_INT2 MOVE #144,(A0)+
- MOVE D1,(A1)+
- MOVE #1,(A2)+
- ADD #24,D1
- DBF D0,POP_INT2
- JMP POP_RCRS
-
- POP_ENDL2 TST ATTRACT_MODE
- BNE POP_DONE
- MOVE #1,D0 ;Bonus of 500 Points
- JSR DOMESSAGE
- MOVE #500,D0
- JSR SCORED
- JSR RMUSIC
- MOVE.L #4,D0
- JSR START_MUSIC
- JMP MAIN4
-
- POP_3RDLVL MOVE #10,D0
- JSR SCORED
-
- SUB #1,POP_COUNT3
- TST POP_COUNT3
- BNE POP_RCRS
-
- TST ATTRACT_MODE
- BNE POP_DONE
- CLR D0 ;Bonus of 100 Points
- JSR DOMESSAGE
- MOVE #100,D0
- JSR SCORED
- JSR RMUSIC
- MOVE.L #3,D0
- JSR START_MUSIC
- JMP MAIN4
-
- POP_RCRS ADD #2,A2
- ADD #2,A3
- DBF D5,POP_TEST
-
- POP_DONE RTS
-
- POP_IT CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- ADD #160-16,A1
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- ADD #160-16,A1
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- ADD #160-16,A1
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- ADD #160-16,A1
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- ADD #160-16,A1
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- ADD #160-16,A1
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- ADD #160-16,A1
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- ADD #160-16,A1
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- ADD #160-16,A1
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- ADD #160-16,A1
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- ADD #160-16,A1
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- ADD #160-16,A1
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- ADD #160-16,A1
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- ADD #160-16,A1
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- ADD #160-16,A1
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- ADD #160-16,A1
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- ADD #160-16,A1
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- ADD #160-16,A1
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- ADD #160-16,A1
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- ADD #160-16,A1
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- ADD #160-16,A1
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- ADD #160-16,A1
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- ADD #160-16,A1
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- ADD #160-16,A1
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- ADD #160-16,A1
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- CLR.L (A1)+
- RTS
-
- *--------------Initialize all the balloons-----------------*
-
- START_BALLOONS CLR TIMER
- MOVE #BAL_PER_ROW,D0
- MOVE D0,POP_COUNT1
- MOVE D0,POP_COUNT2
- MOVE D0,POP_COUNT3
-
- LEA SWITCH,A0
- MOVE #BAL_PER_ROW*3,D0
- SUB #1,D0
- INIT0 MOVE #1,(A0)+
- DBF D0,INIT0
-
- LEA XPOS,A0
- LEA DELAY,A1
- MOVE #BAL_PER_ROW-1,D0
- MOVE #18,D1
- INIT1 CLR (A0)+
- MOVE D1,(A1)+
- ADD #22,D1
- DBF D0,INIT1
-
- MOVE #BAL_PER_ROW-1,D0
- MOVE #30,D1
- INIT2 CLR (A0)+
- MOVE D1,(A1)+
- ADD #26,D1
- DBF D0,INIT2
-
- MOVE #BAL_PER_ROW-1,D0
- MOVE #45,D1
- INIT3 MOVE #144,(A0)+
- MOVE D1,(A1)+
- ADD #24,D1
- DBF D0,INIT3
- RTS
-
- *-------------Print a message-------------*
-
- DOMESSAGE AND.L #$FF,D0
- MULU #160*16,D0
- ADD.L #MESSAGES+16,D0
- MOVE.L D0,A0
-
- MOVE.L SCREEN,A1
- ADD #135*160,A1
- ADD #16,A1
-
- MOVE.L #16,D0
- DOM_100 MOVE #31,D1
- DOM_101 MOVE.L (A0)+,(A1)+
- DBF D1,DOM_101
- ADD #160-128,A0
- ADD #160-128,A1
- DBF D0,DOM_100
- RTS
-
- *---------------Scoring--------------*
-
- SCORED AND.L #$FFFF,D0
- MOVE.L D0,D1
- ADD.L POINTS,D0
- MOVE.L D0,POINTS
-
- ADD.L BONUS,D1
- MOVE.L D1,BONUS
- CMP.L #10000,D1
- BGT BUTUSCREWT
-
- LEA MESSAGES,A0
-
- MOVE.L SCREEN,A4
- ADD #160*28,A4
-
- AND.L #$FFFF,D0
- DIVU #10000,D0
- MOVE.L D0,D1
- AND.L #15,D0
- MULU #1280,D0
- ADD.L #MESSAGES,D0
- MOVE.L D0,A0
- MOVE.L A4,A1
- JSR SCOR_IT
-
- SWAP D1
- AND.L #$FFFF,D1
- DIVU #1000,D1
- MOVE.L D1,D0
- AND.L #15,D1
- MULU #1280,D1
- ADD.L #MESSAGES,D1
- MOVE.L D1,A0
- MOVE.L A4,A1
- ADD #1,A1
- JSR SCOR_IT
-
- SWAP D0
- AND.L #$FFFF,D0
- DIVU #100,D0
- MOVE.L D0,D1
- AND.L #15,D0
- MULU #1280,D0
- ADD.L #MESSAGES,D0
- MOVE.L D0,A0
- MOVE.L A4,A1
- ADD #8,A1
- JSR SCOR_IT
-
- SWAP D1
- AND.L #$FFFF,D1
- DIVU #10,D1
- MOVE.L D1,D0
- AND.L #15,D1
- MULU #1280,D1
- ADD.L #MESSAGES,D1
- MOVE.L D1,A0
- MOVE.L A4,A1
- ADD #9,A1
- JSR SCOR_IT
-
- SWAP D0
- AND.L #15,D0
- MULU #1280,D0
- ADD.L #MESSAGES,D0
- MOVE.L D0,A0
- MOVE.L A4,A1
- ADD #16,A1
- JSR SCOR_IT
-
- MOVE.L SCREEN,A4
- ADD #160*28,A4
- ADD #144,A4
-
- MOVE LIVES,D1
- BEQ SCOREND
-
- LEA MESSAGES+12800,A0
- MOVE.L A4,A1
- JSR SCOR_IT
-
- CMP #1,D1
- BEQ SCOREND
-
- LEA MESSAGES+12800,A0
- MOVE.L A4,A1
- ADD #1,A1
- JSR SCOR_IT
-
- CMP #2,D1
- BEQ SCOREND
-
- LEA MESSAGES+12800,A0
- MOVE.L A4,A1
- ADD #8,A1
- JSR SCOR_IT
-
- CMP #3,D1
- BEQ SCOREND
-
- LEA MESSAGES+12800,A0
- MOVE.L A4,A1
- ADD #9,A1
-
- SCOR_IT MOVE #7,D2
- SCOR_100 MOVE.B (A0),(A1)
- MOVE.B 2(A0),2(A1)
- MOVE.B 4(A0),4(A1)
- MOVE.B 6(A0),6(A1)
- ADD #160,A0
- ADD #160,A1
- DBF D2,SCOR_100
-
- SCOREND RTS
-
- BUTUSCREWT CLR.L BONUS
- JSR RMUSIC
- MOVE #5,D0
- JSR START_MUSIC
- MOVE #3,D0
- JSR DOMESSAGE
- ADD #1,LIVES
- CLR D0
- JSR SCORED
-
- BUTUS1 MOVE VCOUNT,D0
- BUTUS2 ADD #1,RNDVAL
- CMP VCOUNT,D0
- BEQ BUTUS2
- JSR UN_PLOT_CLOWN
- JSR PLOT_MEN
- JSR PLOT_CLOWN
- JSR MOVE_MEN
- JSR MUSIC
- TST MUSTAT
- BNE BUTUS1
- MOVE #5,D0
- JMP DOMESSAGE
-
- **********************
- * MONKEYS & BALLOONS *
- * MUSIC GENERATOR *
- * 68000 *
- * 6/14/88 *
- **********************
-
- RMUSIC CLR D0 ;RESET MUSIC GENERATOR
- MOVE #8,D1
- JSR DOSOUND
- CLR D0
- MOVE #9,D1
- JSR DOSOUND
- CLR D0
- MOVE #10,D1
- JSR DOSOUND
-
- MOVE #$0100,D0
- MOVE D0,MSDLY1
- MOVE D0,MSDLY2
- MOVE D0,MSDLY3
- CLR VOICE1
- CLR VOICE2
- CLR VOICE3
- CLR MUSTAT
- MOVE #TEMPO,MUSDLY
- RTS
-
- *----------Start playing music---------*
-
- START_MUSIC MULU #12,D0
- ADD.L #MUSTBL,D0
- MOVE.L D0,A0
- MOVE.L (A0)+,MSPTR1
- MOVE.L (A0)+,MSPTR2
- MOVE.L (A0)+,MSPTR3
-
- MOVE #248,D0 ;Turn on all tone voices
- MOVE #7,D1
- JSR DOSOUND
- MOVE #10,D0 ;Set volumes
- MOVE #8,D1
- JSR DOSOUND
- MOVE #10,D0
- MOVE #9,D1
- JSR DOSOUND
- MOVE #10,D0
- MOVE #10,D1
- JSR DOSOUND
-
- MOVE #1,MUSTAT
- RTS
-
- MUSTBL DC.L MUS1V1,MUS1V2,MUS1V4
- DC.L MUS2V1,MUS2V2,MUS2V4
- DC.L MUS3V1,MUS3V2,MUS3V4
- DC.L MUS4V1,MUS4V2,MUS4V3
- DC.L MUS5V1,MUS5V2,MUS5V4
- DC.L MUS6V1,MUS6V2,MUS6V4
-
- *----------Play some music---------*
-
- MUSIC TST MUSTAT ;MUSIC BEING PLAYED
- BEQ NOMUSIC
-
- SUB #1,MUSDLY ;DELAY FINISHED
- TST MUSDLY
- BNE NOMUSIC
- MOVE #TEMPO,MUSDLY
-
- LEA MSDLY1,A4
- LEA VOICE1,A3
- LEA MSPTR1,A2
- CLR D4
-
- MUS1 CLR.L D0
- MOVE.B (A4),D0
- SUB #1,D0
- TST D0
- BEQ MUS1B
- MOVE.B D0,(A4)
- JMP MUS2
-
- MUS1B CLR (A3) ;VOICE1
- CLR D0
- MOVE D4,D1
- JSR DOSOUND
- CLR D0
- MOVE D4,D1
- ADD #1,D1
- JSR DOSOUND
-
- MOVE.B 1(A4),D0
- BEQ MUS1C
- SUB #1,D0
- MOVE.B D0,1(A4)
- JMP MUS2
-
- MUS1C MOVE.L (A2),A0
- CMP #MEOF,(A0)
- BNE MFM1
-
- JSR RMUSIC
- JMP NOMUSIC
-
- MFM1 MOVE (A0),D0
- MOVE D0,(A3) ;VOICE1
- AND #$FF,D0
- MOVE D4,D1
- JSR DOSOUND
-
- MOVE.B (A3),D0
- MOVE D4,D1
- ADD #1,D1
- JSR DOSOUND
-
- CLR.L D0
- MOVE 2(A0),D0
- MOVE.B D0,1(A4) ;MSDLY1+1
- LSL #2,D0
- MOVE.B D0,(A4) ;MSDLY1
-
- ADD.L #4,(A2)
-
- MUS2 ADD #4,A2
- ADD #2,A3
- ADD #2,A4
-
- ADD #2,D4
- CMP #6,D4
- BNE MUS1
- RTS
-
- DOSOUND MOVEM.L D0-D4/A0-A4,-(A7)
- OR #$80,D1
- MOVE D1,-(A7) ;Reg #
- MOVE D0,-(A7) ;Data
- MOVE #28,-(A7)
- TRAP #14
- ADD #6,A7
- MOVEM.L (A7)+,D0-D4/A0-A4
-
- NOMUSIC RTS
-
- MC1 = 955
- MDF1 = 901
- MD1 = 851
- MEF1 = 302
- ME1 = 758
- MF1 = 715
- MGF1 = 675
- MG1 = 637
- MAF1 = 601
- MA1 = 568
- MBF1 = 536
- MB1 = 506
-
- MC2 = 477
- MDF2 = 450
- MD2 = 425
- MEF2 = 401
- ME2 = 379
- MF2 = 357
- MGF2 = 337
- MG2 = 318
- MAF2 = 300
- MA2 = 284
- MBF2 = 268
- MB2 = 253
-
- MC3 = 238
- MDF3 = 225
- MD3 = 212
- MEF3 = 200
- ME3 = 189
- MF3 = 178
- MGF3 = 168
- MG3 = 159
- MAF3 = 150
- MA3 = 142
- MBF3 = 134
- MB3 = 126
-
- MC4 = 119
- MEOF = $FF
-
- *** ORIGINAL RAGS BY SCOTT JOPLIN ***
- ; ARRANGED BY FRANK COHEN
-
- MUS1V1 DC MC4,1,MC4,2,MC4,1,MC4,2,MC4,2
- DC MC4,2,MA2,2,MD2,4
- DC MC3,1,MC3,2,MC3,1,MC3,2,MC3,2
- DC MC3,2,0,2,0,1,MD3,1,MG3,1,MB3,1
- DC MD3,1,MG3,1,MB3,1,MD3,2,MB3,1,MD3,1,MB3,1
- DC MD3,1,MG3,1,MB3,1,MD3,2,MB3,1,MD3,1,MB3,1
- DC ME3,1,ME3,2,MG3,1,MA3,1,MG3,1,MA3,2
- DC MB3,4,0,1,MD3,1,MG3,1,MB3,1
- DC MD3,1,MG3,1,MB3,1,MD3,2,MB3,1,MD3,1,MB3,1
- DC MD3,1,MG3,1,MB3,1,MD3,2,MB3,1,MD3,1,MB3,1
- DC MB3,2,MA3,2,MA3,2,MAF3,1,MA3,1
- DC MB3,1,MA3,2,MGF3,1,ME3,2,MD3,2
- DC MD3,1,MG3,1,MB3,1,MD3,2,MB3,1,MD3,1,MB3,1
- DC MD3,1,MG3,1,MB3,1,MD3,2,MB3,1,MD3,1,MB3,1
- DC ME3,1,ME3,2,MG3,1,MA3,1,MG3,1,MA3,2
- DC MB3,4,0,2,MB3,2
- DC ME3,1,MD3,2,MB2,1,MC3,2,MB2,2
- DC MB2,1,MA2,2,ME2,1,MB2,2,MC2,2
- DC MB3,1,MA3,2,MB3,1,MC4,1,MB3,1,MA3,2
- DC MG3,2
- DC MEOF,MEOF
-
- MUS1V2 DC ME3,1,ME3,2,ME3,1,MEF3,2,MEF3,2
- DC MD3,2,0,2,MD2,4
- DC ME2,1,ME2,2,ME2,1,MEF2,2,MEF2,2
- DC MD2,2,0,2,0,1,0,2,0,1
- DC 0,4,0,4
- DC 0,4,0,4
- DC 0,1,0,2,ME3,1,ME3,1,ME3,1,MEF3,2
- DC MD3,4,0,1,0,1,0,2
- DC 0,2,MD2,2,0,2,MD2,2
- DC 0,2,MD2,2,0,2,MD2,2
- DC MDF2,2,MDF2,2,MDF2,2,MC2,1,MC2,1
- DC MC2,1,MC2,2,MC2,1,MC2,2,MC2,2
- DC 0,2,MD2,2,0,2,MD2,2
- DC 0,2,MD2,2,0,2,MD2,2
- DC 0,1,0,2,ME2,1,ME2,1,ME2,1,ME2,2
- DC MEF2,4,0,2,MB2,2
- DC 0,2,MB1,2,0,2,MAF2,2
- DC 0,2,MC2,2,0,2,MC2,2
- DC MB2,1,MA2,2,MB2,1,MC3,1,MB2,1,MA2,2
- DC MG2,2
- DC MEOF,MEOF
-
- MUS1V3 DC MA2,1,MA2,2,MA2,1,MA2,2,MA2,2
- DC MC3,2,0,2,0,4
- DC MC2,1,MC2,2,MC2,1,MC2,2,MC2,2
- DC MC2,2,0,2,0,4
- DC 0,2,MD2,2,0,2,MD2,2
- DC 0,2,MD2,2,0,2,MD2,2
- DC 0,2,ME2,2,0,2,MEF2,2
- DC 0,2,MD2,2,MD1,2,0,2
- DC 0,4,0,4
- DC 0,4,0,4
- DC 0,2,MA1,2,0,2,MA1,2
- DC 0,4,0,4
- DC 0,4,0,4
- DC 0,4,0,4
- DC 0,2,MC2,2,0,2,MC2,2
- DC 0,2,MA1,2,MA1,4
- DC 0,2,MB1,2,0,2,MAF1,2
- DC 0,2,MC2,2,0,2,MC2,2
- DC 0,2,MB1,2,0,2,0,2
- DC MG2,2
- DC MEOF,MEOF
-
- MUS1V4 DC MA2,1,MA2,2,MA2,1,MG2,2,MG2,2
- DC MGF2,2,MA1,2,MD1,4
- DC MA1,1,MA1,2,MA1,1,MG1,2,MG1,2
- DC MGF1,2,MA1,2,MD1,4
- DC MG1,2,MB1,2,MD1,2,MB1,2
- DC MG1,2,MB1,2,MD1,2,MB1,2
- DC MC1,2,MG1,2,MC1,2,MG1,2
- DC MG1,2,MG1,2,MD1,2,0,2
- DC MG1,2,MB1,2,MD1,2,MB1,2
- DC MG1,2,MB1,2,MD1,2,MB1,2
- DC ME1,2,MG1,2,MA1,2,MG1,2
- DC MD1,1,MGF1,2,MA1,1,MG1,2,MGF1,2
- DC MG1,2,MB1,2,MD1,2,MB1,2
- DC MG1,2,MB1,2,MD1,2,MB1,2
- DC MC1,2,MG1,2,MC1,2,MG1,2
- DC MB1,2,MGF1,2,MGF1,4
- DC MAF1,2,ME1,2,ME1,2,ME1,2
- DC MA1,2,MA1,2,MA1,2,MA1,2
- DC MD1,2,MG1,2,MD1,2,ME1,1,MGF1,1
- DC MG1,2
- DC MEOF,MEOF
-
- *** INTERMISSION MUSIC ***
-
- MUS2V1 DC MBF3,1,MB3,2,MBF3,1,MB3,2,MBF3,1,MB3,1
- DC MGF3,1,MG3,2,ME3,1,ME3,4
- DC MGF3,1,MG3,2,MGF3,1,MG3,2,MGF3,1,MG3,1
- DC MDF3,1,MD3,2,MB2,1,MB2,4
- DC MA2,1,MA2,2,MA2,1,ME3,2,ME3,2
- DC MD3,1,MG3,2,ME3,1,MD3,1,MB2,1,MG2,2
- DC MA2,1,MB2,1,MC3,1,MB2,2,MA2,2,MB2,1
- DC MG2,2,0,2,MG3,4
- DC MEOF,MEOF
-
- MUS2V2 DC MGF3,1,MG3,2,MGF3,1,MG3,2,MGF3,1,MG3,1
- DC MDF3,1,ME3,2,MC3,1,MC3,4
- DC MDF3,1,ME3,2,MDF3,1,ME3,2,MDF3,1,ME3,1
- DC MBF2,1,MB2,2,MG2,1,MG2,4
- DC MG2,1,MG2,2,MG2,1,MA2,2,MA2,2
- DC MB2,1,0,1,0,2,0,4
- DC MC2,1,MD2,1,ME2,1,MD2,2,MC2,2,MD2,1
- DC MB1,2,0,2,MB2,4
- DC MEOF,MEOF
-
- MUS2V3 DC 0,2,MD2,2,0,2,MD2,2
- DC 0,2,ME2,2,0,2,ME2,2
- DC 0,2,MC2,2,0,2,MC2,2
- DC 0,2,MD2,2,0,2,MD2,2
- DC ME2,1,ME2,2,ME2,1,MAF2,2,MAF2,2
- DC MG2,1,0,1,0,2,0,4
- DC MA1,4,0,4
- DC MG1,2,0,2,MG2,4
- DC MEOF,MEOF
-
- MUS2V4 DC MG1,2,MB1,2,MD1,2,MB1,2
- DC MC1,2,MG1,2,MC1,2,MG1,2
- DC MC1,2,MG1,2,MC1,2,MG1,2
- DC MG1,2,MB1,2,MD1,2,MB1,2
- DC MC1,4,MDF1,4
- DC MD1,2,MG1,2,MG1,4
- DC MA1,4,MD1,4
- DC MG1,2,0,2,MG1,4
- DC MEOF,MEOF
-
- *** DEATH MUSIC BY SCOTT JOPLIN
- *** ARRANGED BY FRANK COHEN
-
- MUS3V1 DC MC4,1,MA3,1,MGF3,1,MEF3,1,MC3,1,MA2,2,MAF2,1
- DC MG2,2,MA2,1,MC3,2,MD3,1,ME3,2
- DC MA2,4,ME3,4
- DC MC3,4,0,4
- DC MEOF,MEOF
-
- MUS3V2 DC MGF1,1,MA1,1,MC1,1,MEF1,1,MF1,1,MA1,2,MAF1,1
- DC 0,2,ME2,2,0,2,ME2,2
- DC 0,2,MC2,2,0,2,MB1,2
- DC MG1,4,0,4
- DC MEOF,MEOF
-
- MUS3V3 DC 0,4,0,4
- DC 0,2,MC2,2,0,2,MC2,2
- DC 0,2,MA1,2,0,2,MG1,2
- DC MG1,4,0,4
-
- MUS3V4 DC 0,4,0,4
- DC MG1,2,MG1,2,MA1,2,MA1,2
- DC MD1,2,MGF1,2,MG1,2,MF1,2
- DC ME1,4,0,4
-
- *** BOTTOM LINE FINISHED MUSIC
- *** ARRANGED BY FRANK COHEN 5/9/82
-
- MUS4V1 DC MB1,1,MD2,1,MF2,1,MAF2,1,MB2,1,MB2,2,MB2,2
- DC MD3,1,MF3,1,MAF3,1,MB3,2,0,2
- DC MC4,1,MAF3,1,MEF3,1,MC3,2,MAF2,1,MC2,1,MEF2,1
- DC MBF2,1,MBF2,2,MAF2,3
- DC MEOF,MEOF
-
- MUS4V2 DC MD1,1,MF1,1,MAF1,1,MB1,1,MD2,1,MD2,2,MD2,1
- DC MD2,1,MF2,1,MAF2,1,MB2,1,MD3,2,0,2
- DC MEF3,2,0,2,0,4
- DC MG2,1,MG2,2,MEF2,3
-
- MUS4V3 DC 0,4,0,4
- DC 0,4,0,4
- DC 0,4,0,4
- DC 0,4,0,4
-
- MUS4V4 DC 0,4,0,4
- DC 0,4,0,4
- DC MAF2,2,0,2,0,4
- DC MEF1,2,MEF1,2,MAF1,2
-
- *** MIDDLE LINE FINISHED MUSIC
-
- MUS5V1 DC MBF2,1,MC3,1,MBF2,1,MG2,1,MBF2,1,MC3,1,MBF2,1,MG2,1
- DC MBF2,1,MD3,2,MBF2,1,MD3,4
- DC MG2,1,MD3,3,MA2,1,MC3,2
- DC MBF2,2,MF3,1,MG3,1,MA3,1,MBF3,2
- DC MEOF,MEOF
-
- MUS5V2 DC MEF1,2,MF1,2,MG1,2,MA1,2
- DC MBF1,2,MD2,2,MF1,2,MB1,2
- DC MC1,2,MBF1,2,MF1,2,MEF2,2
- DC MD2,2,MEF2,2,MD2,2
- DC 0,4,0,4
-
- MUS5V3 DC 0,4,0,4
- DC 0,2,MF1,2,0,2,MF1,2
- DC 0,4,0,4
- DC 0,2,MC2,2,0,2
- DC 0,4,0,4
-
- MUS5V4 DC MEF2,1,MF2,1,MG2,1,MA2,1
- DC 0,2,MBF1,2,0,2,MF1,2
- DC 0,2,MG1,2,0,2,MA1,2
- DC MBF1,2,MF1,2,MBF1,2
- DC 0,4,0,4
-
- *** BONUS MAN MUSIC ***
-
- MUS6V1 DC MA3,1,MG3,2,MG3,2,MA3,1,MG3,2
- DC MC4,2,0,2,MC1,2
- DC MEOF,MEOF
-
- MUS6V2 DC MF3,1,MF3,2,MF3,2,0,1,0,2
- DC ME3,2,0,2,ME2,2
-
- MUS6V3 DC MB2,1,MB2,2,MB2,2,0,1,0,2
- DC MC2,2,0,2,MG1,2
-
- MUS6V4 DC MG1,2,MF1,2,MB1,2,MG1,2
- DC MC1,2,0,2,MC3,2
-
- *------------SOUND EFFECTS--------------*
-
- SOUNDS TST ATTRACT_MODE
- BNE SOUND_END
- TST SOUND_COUNT
- BEQ SOUND_END
-
- SUB #1,SOUND_COUNT
- TST SOUND_COUNT
- BNE SOUND_END
-
- MOVE #255,D0
- MOVE #7,D1
- JSR DOSOUND
-
- SOUND_END RTS
-
- HIT_WALL TST SOUND_COUNT
- BNE SOUND_END
- TST ATTRACT_MODE
- BNE SOUND_END
- TST MUSTAT
- BNE SOUND_END
- MOVE #5,SOUND_COUNT
- MOVE #160,D0
- MOVE #0,D1
- JSR DOSOUND
- MOVE #11,D0
- MOVE #1,D1
- JSR DOSOUND
- MOVE #210,D0
- MOVE #6,D1
- JSR DOSOUND
- MOVE #$F6,D0 ;Turn on all tone voices
- MOVE #7,D1
- JSR DOSOUND
- MOVE #10,D0 ;Set volumes
- MOVE #8,D1
- JMP DOSOUND
-
- POP_SOUND TST SOUND_COUNT
- BNE SOUND_END
- TST ATTRACT_MODE
- BNE SOUND_END
- TST MUSTAT
- BNE SOUND_END
- MOVEM.L D0-D7/A0-A4,-(A7)
- MOVE #2,SOUND_COUNT
- MOVE #100,D0
- MOVE #0,D1
- JSR DOSOUND
- MOVE #9,D0
- MOVE #1,D1
- JSR DOSOUND
- MOVE #180,D0
- MOVE #6,D1
- JSR DOSOUND
- MOVE #$F6,D0 ;Turn on all tone voices
- MOVE #7,D1
- JSR DOSOUND
- MOVE #10,D0 ;Set volumes
- MOVE #8,D1
- JSR DOSOUND
- MOVEM.L (A7)+,D0-D7/A0-A4
- RTS
-
- *-----------------Variables and Storage----------------*
-
- BSS
- EVEN
-
- HOLDA0 DS.L 1
- VCOUNT DS 1
- COUNT DS 1
- COUNT2 DS 1
-
- POP_COUNT1 DS 1
- POP_COUNT2 DS 1
- POP_COUNT3 DS 1
-
- POINTS DS.L 1
- BONUS DS.L 1
-
- XPOS DS 48
- DELAY DS 48
- SWITCH DS 48
-
- OLDCLOWNX DS 1
- OLDCLOWNY DS 1
- CLOWNX DS 1
- CLOWNY DS 1
- CLOWNIMAGE DS 1
- OLDIMAGE DS 1
- IMAGETIME DS 1
- LIVES DS 1
-
- MENXPOS DS 1
- OLDMEN DS 1
-
- XYZZY DS 8
- COLORS DS 16
- OLD_COLORS DS 16
- OLD_REZ DS 1
-
- COUNTER DS 1
- TIMER DS 1
- COUNT1 DS 1
- SCREEN DS.L 1
- SCREEN2 DS.L 1
- FHANDLE DS 1
- HOLDEN DS.L 1
- PCOUNT DS 1
- PCOUNT2 DS 1
- EVEN
-
- KAY DS 1
- YINC DS 1
- XINC DS 1
- VPOS DS 1
- HPOS DS 1
- SYINC DS 1
- KS DS 1
- HITS DS 1
- RNDVAL DS 1
- TOP_FLAG DS 1
-
- MUSDLY DS 1
- MUSTAT DS 1
- VOICE1 DS 1
- VOICE2 DS 1
- VOICE3 DS 1
- MSDLY1 DS 1
- MSDLY2 DS 1
- MSDLY3 DS 1
- MSPTR1 DS.L 1
- MSPTR2 DS.L 1
- MSPTR3 DS.L 1
- SOUND_COUNT DS 1
-
- LFSIZE DS.L 1
- LFADR DS.L 1
-
- ATTRACT_MODE DS 1
- MEN_TIMER DS 1
-
- BALLOONS DS.B 32000
- FLIP1 DS.B 32000
- MEN DS.B 32000
- MESSAGES DS.B 32000
- TITLE DS.B 32000
- DECODE DS.B 32000
-
- END
-